<template>
	<u-popup v-model="show" mode="center">
		<view class="column-center text-center">
			<image v-if="lists && lists.image" :src="lists.image" mode="widthFix" class="advertising" @click="goPage(lists)"></image>
			
			<view class="u-m-t-30 text-center" >
				<u-icon name="close-circle" color="#FFF" size="50" @click="closeAd"></u-icon>
			</view>
		</view>
	</u-popup>
</template>

<script>
	import {
		getAdList
	} from '@/api/store';
	import {
		paramsToStr
	} from '@/utils/tools'
	import {
		toLogin
	} from '@/utils/login'
	export default {
		data() {
			return {
				show:false,
				lists: [],
				currentSwiper: 0
			};
		},

		components: {},
		props: {
			pid: {
				type: Number|String
			},
			circular: {
				type: Boolean,
				default: true
			},
			autoplay: {
				type: Boolean,
				default: true
			},
			height: {
				type: String
			},
			radius: {
				type: String,
				default: '10rpx'
			},
			padding: {
				type: String,
				default: '0rpx'
			},
			previousMargin: {
				type: String,
				default: "0rpx"
			},
			isSwiper: {
				type: Boolean,
				default: true
			}
		},
		created() {
			if(uni.getStorageSync('ad-'+this.pid) != this.$u.timeFormat(Date.now(), 'yyyy-mm-dd')){
				this.getAdListFun();
			}
		},
		watch: {
			'pid': function(value) {
				this.getAdListFun();
			}
		},
		methods: {
			closeAd(){
				uni.setStorageSync('ad-'+this.pid, this.$u.timeFormat(Date.now(), 'yyyy-mm-dd'))
				this.show = false
			},
			async getAdListFun() {
				const {
					code,
					data
				} = await getAdList({
					pid: this.pid,
					client: 1
				})
				if (code == 1) {
					this.lists = data[0]
					if(data[0]){
						this.show = true
					}
				}
			},

			swiperChange(e) {
				this.currentSwiper = e.detail.current
			},
			isURL(url) {
			　　
			　　const strRegex = '^((https|http|ftp)://)?'//(https或http或ftp):// 可有可无
			　　+ '(([\\w_!~*\'()\\.&=+$%-]+: )?[\\w_!~*\'()\\.&=+$%-]+@)?' //ftp的user@ 可有可无
			　　+ '(([0-9]{1,3}\\.){3}[0-9]{1,3}' // IP形式的URL- 3位数字.3位数字.3位数字.3位数字
			　　+ '|' // 允许IP和DOMAIN（域名）
			　　+ '(localhost)|'    //匹配localhost
			　　+ '([\\w_!~*\'()-]+\\.)*' // 域名- 至少一个[英文或数字_!~*\'()-]加上.
			　　+ '\\w+\\.' // 一级域名 -英文或数字 加上.
			　　+ '[a-zA-Z]{1,6})' // 顶级域名- 1-6位英文
			　　+ '(:[0-9]{1,5})?' // 端口- :80 ,1-5位数字
			　　+ '((/?)|' // url无参数结尾 - 斜杆或这没有
			　　+ '(/[\\w_!~*\'()\\.;?:@&=+$,%#-]+)+/?)$';//请求参数结尾- 英文或数字和[]内的各种字符
			　　const re = new RegExp(strRegex, 'i'); // 大小写不敏感
			　　if (re.test(encodeURI(url))) {
			　　　　return true;
			　　}
			　　return false;
			},
			goPage(item) {
				console.log(item)
				let {
					link,
					link_type,
					params,
					is_tab
				} = item;
				switch (link_type) {
					case 1:
						""
					case 2:
						if (is_tab) {
							uni.switchTab({
								url: link
							});
						} else {
							uni.navigateTo({
								url: link + paramsToStr(params)
							});
						}
						break;
					case 3:
					if (!this.isLogin) return toLogin();
					if(this.isURL(link)){
						// #ifdef APP || MP-WEIXIN 
							var k = this.$u.guid(20);
							uni.setStorageSync(k,link)
							uni.navigateTo({
							  url: "/pages/webview/webview?id=" + k,
							});
						// #endif
						// #ifndef APP || MP-WEIXIN
							window.location.href = link;
						// #endif
					}else{
						uni.navigateTo({
							url:link,
							fail(e) {
								console.log(e)
							}
						})
					}
				}
			}
		}
	};
</script>L

<style lang="scss">
	.advertising{
		min-width: 50%;
		max-width: 90%;
		display: inline-block;
		border-radius: 10rpx;
		margin: 0 auto;
	}
</style>